# -*-coding:utf-8 -*-
# @Time: 2023/3/15 18:20
# @Author: cuishuohao
# @File: demo
# @Software: PyCharm

# 1.构建回归问题数据集
import numpy as np
import matplotlib.pyplot as plt

# np.random.seed(13781)
X = np.random.uniform(-10, 10, 100)  # 100个x采样点
noise = np.random.normal(0, 1, 100)  # 定义噪声满足N(,1)的正态分布
y = 1.5 * X + 0.3 + noise  # 100个点的y值
plt.scatter(X, y, label="All 100 data")  # 绘制原始数据的散点图
plt.legend()
plt.show()

X = X.reshape(-1, 1)  # 增加一个维度
y = y.reshape(-1, 1)  # 增加一个维度
DataSet = np.concatenate((X, y), axis=1)  # 构建数据集

np.random.shuffle(DataSet)  # 随机打乱该数组
TrainSet = DataSet[:80]  # 取前80个样本为训练集
TestSet = DataSet[80:]  # 取后20个样本为测试集
plt.scatter(TrainSet[:, 0], TrainSet[:, 1], c="blue",label="blue is train")  # 绘制测试集的散点图
plt.scatter(TestSet[:, 0], TestSet[:, 1], c="red",label="red is test")  # 绘制训练集的散点图
plt.legend()
plt.show()
